
<template>
  <!-- 1.31 创建按钮组件文件  -->
  <!-- 1.37 添加监听事件接收数据 -->
  <div
    class="btn"
    @click="handler"
    :class="{ primary: type == 'primary', danger: type == 'danger' }"
  >
    <!-- 1.33 添加插槽,让用户可以自定义按钮的文本内容 -->
    <!-- 匿名插槽:没有设置名称的插槽 -->
    <slot></slot>
  </div>
</template>

<script>

export default {
  /* 1.39 添加监听父组件的type值事项不同的样式   */
  props: {
    type: {
      //1.39.1 设定type的属性
      type: String,
    },
  },
  methods: {
    //1.37.1 定义事件函数
    handler(e) {
      //使用$emit告诉父组件需要事件触发,获取响应的指令需求
      // console.log(e);
      this.$emit("myclick", e);
    },
  },
  
};
</script>

<style lang="less" scoped>
/* 1.32 添加按钮样式 */
.btn {
  width: 318 * 100vw/360;
  height: 50px;
  border-radius: 25px;
  border: 1px solid #ccc;
  background-color: #ccc;
  line-height: 50px;
  text-align: center;
  margin: 0 auto;
  font-size: 20px;
  color: #666;
}
.primary {
  border: 1px solid rgb(67, 145, 4);
  background-color: rgb(67, 145, 4);
  color: #fff;
}
.danger {
  border: 1px solid rgb(211, 29, 13);
  background-color: rgb(211, 29, 13);
  color: #fff;
}
</style>